주니어 프로그래머 여럿이랑 일하고 있기도 하고, 여러 개발자 커뮤니티에서 올라오는 입문자들의 질문들을 보면서 느끼는 바가 있기도 해서, 프로그래밍 입문자들에게 도움이 될 만한 것들을 정리해두고자 한다. 이 글은 실력 있는 프로그래머들 다수의 균형잡힌 관점이 아니라 나 개인의 주관적인 관점이므로 비판적으로 읽어야 할 것이다. 이 글에 나오는 여러 가지 일반화 역시 엄정한 통계적인 자료가 있는 것이 아니라 나 개인의 경험적 관찰에 근거를 둔 직관이므로 누군가를 설득하기 위한 근거로 사용해서는 안될 것이다.
입문자를 위한 룰이 너무 많으면 그것도 소화하기 힘들어져서 의미가 없어진다. 그래서 세 가지의 핵심적인 문구로 압축했다. 그 세 가지 안에 또 세부적인 내용들이 있지만, 세 가지 대표 문구만으로도 충분히 포괄할 수 있을 만한 원칙들이다. 말하자면, 이건 입문자들이 따르면 좋은 100가지 원칙 중 3가지를 꼽은 게 아니라, 정말 이거 세 가지만 잘하면 성장할 수 있다는 의미로 세 가지를 꼽았다.
정확하게 일하기#
전문가는 직관으로 일한다. 그래서 전문가가 일하는 모습을 보면 꼼꼼하게 하나하나 따지는 것이 아니라 감으로 찍어서 진도를 나가는데 그 감이 잘 들어맞는다. 그래서 이걸 초보자가 보고 흉내내면 재앙이 시작된다.
하지만 초보자는 직관으로 일할 수 없다. 직관이란 경험이 쌓여야 하는 것이기 때문에 초보자의 직관은 신뢰할 수 없다.
추측하지 말라#
개념을 정확하게 이해하라#
에러 메세지를 확인하라#
RTFM#
SELECT는 깨지지 않았다.#
#
원리를 이해하라#
반복적으로 재현하라#
#
결정할 때는 자신 만의 이유를 대라#
#
올바른 방법을 추구하라#
조금 더 나은 방법#
소스를 들여다보라#
지속적인 개선#
검색하는 법#
질문하는 법#
#
빨리, 그리고 자주 피드백을 받아라#
현재 내 실력은 어느 정도이며, 어떤 속도로 발전하고 있는가#
우리 프로젝트는 잘 굴러가고 있는가#
내가 만든 소프트웨어는 잘 동작하는가#
추천도서#
- 실용주의 사고와 학습
- 이너게임
- 테스트 주도 개발
- 리팩터링
- 도요타 방법
- The Goal 시리즈